Multicore processor systems including multiple processing cores equipped with a central processing unit (CPU) and memory can roughly be classified into two types. One type is a distributed memory-type in which a CPU cannot directly refer to the memory of another processing core and the other type is a distributed shared memory-type or non-uniform memory access (NUMA) type in which a CPU can refer to the memory of another processing core (see, e.g., “Distributed Shared Memory—Wikipedia” [online], retrieved on Oct. 7, 2010, Internet <URL: http://ja.wikipedia.org/wiki/% E5%88%86% E6%95% A3% E5%85% B1% E6%9C %89% E3%83% A1% E3%83% A2% E3%83% AA>, “NUMA—Wikipedia” [online], retrieved on Oct. 7, 2010, Internet <URL: http://ja.wikipedia.org/wiki/NUMA>, and “NUMA—Theory and Practice—SourceForge. JP Magazine: Full of Topics about Open Source” [online], retrieved on Oct. 7, 2010, Internet <URL: http://sourceforge.jp/magazine/03/05/14/0222221> for description of the distributed shared memory-type and the NUMA-type).
Multicore processor systems of the distributed memory-type, the distributed shared memory-type, and the NUMA-type are applied in cases such as when a sufficient communication bandwidth cannot be acquired in a large-scale computer for implementing shared memory such as memory between housings. The multicore processor systems of the distributed memory-type, the distributed shared memory-type, and the NUMA-type are used when excessive congestion due to shared memory reduces the performance of a large-scale computer consequent to a very large number of CPUs being disposed.
When load is distributed among processing cores, a process is migrated between the processing cores by a communication system to which a processing group belongs. In a multicore processor system of the distributed shared memory-type or the NUMA-type, the memory of one processing core and the memory of another processing core have different access speeds while the memories are logically handled to be equivalent in the shared memory-type multicore processor system. Therefore, a method of migrating a process in the distributed shared memory-type or the NUMA-type multicore processor system can be implemented by utilizing a method equivalent to that of the shared memory-type multicore processor system.
On the other hand, with regard to load distribution in a multicore processor system of the distributed memory-type, for example, a technique is disclosed that migrates from a source processing core to a destination processing core by utilizing a communication path between the processing cores, data utilized by a process that is to be migrated (see, e.g., Japanese Laid-Open Patent Publication No. 2009-199414). For example, in a technique according to Japanese Laid-Open Patent Publication No. 2009-199414, after migration of a given process, when a destination processing core executes the given process, the destination processing core accesses the memory of the source processing core, thereby enabling a multicore processor system of the distributed memory-type to implement migration of a process between processing cores and to execute load distribution.
For a technique applicable to a method of selecting a process among multiple processes in the load distribution, a technique is disclosed that calculates cost based on memory capacity and a transfer time at the time of thread switching to make the switch to a thread having the smallest cost (see, e.g., Japanese Laid-Open Patent Publication No. 2008-152470). As a result, a process having the smallest cost can be migrated at the time of load distribution.
A technique is disclosed that regularly monitors load statuses of multiple processing cores to execute load distribution when load amounts are significantly biased between processing cores in a method of determining whether the load distribution is to be executed (see, e.g., Japanese Laid-Open Patent Publication No. 2008-191949).
Recently, a separate-type mobile telephone exists that is configured to be used in such a manner that two communication apparatuses are coupled or that two communication apparatuses are separated to make a phone call with one communication apparatus and connect to a network with the other communication apparatus. If each of the communication apparatuses has a CPU and memory, such a separate-type mobile telephone can be considered as one form of a distributed memory-type, or distributed shared memory-type, or NUMA-type multicore processor system.
In a large-scale computer to which the distributed memory-type, the distributed shared memory-type, or the NUMA-type multicore processor system is applied, a communication path is supposed to be fixed. Therefore, for example, the technique according to Japanese Laid-Open Patent Publication No. 2009-199414 is directed to a migration method of a process in the case of a fixed communication path. However, the communication speed of the separate-type mobile telephone varies considerably depending on whether the communication apparatuses are coupled or separated and, even when the load distribution is executed, migration of a process causes a high load depending on the communication state and processing efficiency problematically deteriorates.
For example, when communication apparatuses are separated and information is communicated in a wireless connection state in a separate-type mobile telephone, if the load distribution is executed based on the scheme of the distributed shared memory-type or the NUMA-type, a problem arises in that communication takes time because communication between communication apparatuses is frequently performed in the low-speed wireless connection state.